package org.lemma.set;

import org.lemma.set.Set;
import org.lemma.number.Natural;
import javax.annotation.Author;
import javax.annotation.Copyright;
import javax.annotation.Version;
import org.lemma.number.Numeric;

/**
 * <p>
 *  TODO: Javadoc for {@code FiniteSet}
 * </p>
 *
 * @author Chris Beatty [christopher.beatty@gmail.com]
 * @param D The object type for the domain
 * @version 1.0.0
 */
@Version (
    major="1", minor="0", patch="0", 
    date="Jun 11, 2008 1:41:30 PM",
    authors = {
        @Author (name="Chris Beatty", email="christopher.beatty@gmail.com")
    }
) @Copyright 
public interface FiniteSet<D, M extends Numeric> extends Set<D,M>, Iterable<D> {

    /**
     * 
     * @return
     */
    public Natural cardinality();
    
}
